"""
AI决策器使用示例 - 展示如何使用集成了大模型辅助决策的AI决策器

该脚本演示了如何创建和使用集成了大语言模型辅助决策功能的AI决策器。
"""

from decision_maker import DecisionMaker

def main():
    """主函数 - 演示AI决策器的使用"""
    print("AI决策器使用示例 - 集成大模型辅助决策")
    print("=" * 50)
    
    # 创建启用大模型辅助决策的AI决策器实例
    # 注意：需要确保大模型API服务正在运行
    ai_with_llm = DecisionMaker(
        use_llm=True,
        llm_api_url="http://localhost:8000/v1/completions",  # 替换为实际的大模型API地址
        llm_api_key=""  # 如果需要API密钥，请填写
    )
    
    # 示例游戏状态（模拟数据）
    sample_state = {
        'resources': {'gold': 800, 'wood': 450},
        'unit_count': 8,
        'building_count': 5
    }
    
    print("示例游戏状态:")
    print(f"  金币: {sample_state['resources']['gold']}")
    print(f"  木材: {sample_state['resources']['wood']}")
    print(f"  单位数量: {sample_state['unit_count']}")
    print(f"  建筑数量: {sample_state['building_count']}")
    print()
    
    # 制定决策
    print("正在制定决策...")
    decision = ai_with_llm.make_decision(sample_state)
    
    print("AI决策结果:")
    print(f"  决策来源: {decision.get('source', 'unknown')}")
    if decision.get('source') == 'llm':
        print(f"  动作类型: {decision['action']['type']}")
        print(f"  动作参数: {decision['action']['params']}")
        print(f"  置信度: {decision.get('confidence', 'N/A')}")
        if 'reason' in decision:
            print(f"  决策原因: {decision['reason']}")
    elif decision.get('source') == 'rl':
        print(f"  动作索引: {decision['action_index']}")
        print(f"  动作类型: {decision['action']['type']}")
        print(f"  动作参数: {decision['action']['params']}")
    else:
        # 混合决策
        print(f"  动作索引: {decision['action_index']}")
        print(f"  动作类型: {decision['action']['type']}")
        print(f"  动作参数: {decision['action']['params']}")
        if 'llm_advice' in decision:
            print("  大模型建议:", decision['llm_advice'])
    
    print()
    print("注意：要使大模型辅助决策功能正常工作，需要:")
    print("1. 启动支持API的大语言模型服务（如FastChat、TextGen WebUI等）")
    print("2. 确保API地址和密钥配置正确")
    print("3. 确保网络连接正常")


if __name__ == "__main__":
    main()